<?php

/**
 * Maikuro CMS
 *
 * LICENSE:
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * The license is bundled with this package in the file LICENSE.txt.
 * You may also obtain a copy of the License at this URL:
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * @copyright  Copyright (c) 2010, Jonathan Hedrén
 * @author     Jonathan Hedrén <jonathan.hedren@gmail.com>
 * @license    http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
 */

class SetupForm extends Form
{
    protected function setup()
    {
        $timezoneElement = new SelectFormElement('siteTimezone', Translator::translate('Timezone'), array('required'));
        foreach (DateTimeZone::listIdentifiers() as $identifier) {
            $timezoneElement->addOption($identifier);
        }
        $timezoneElement->setValue(date_default_timezone_get());

        $homePageTitleElement = new TextFormElement('siteHomePageTitle', Translator::translate('Home page title'), array('required'));
        $homePageTitleElement->setValue(Translator::translate('Home'));

        $this->setElements(array(
            new TextFormElement('dbHost', Translator::translate('Hostname'), array('required')),
            new TextFormElement('dbName', Translator::translate('Database name'), array('required')),
            new TextFormElement('dbUsername', Translator::translate('Username'), array('required')),
            new TextFormElement('dbPassword', Translator::translate('Password')),
            new TextFormElement('adminUsername', Translator::translate('Admin username'), array('required')),
            new TextFormElement('adminEmail', Translator::translate('Admin email'), array('required', 'email')),
            new TextFormElement('adminPassword', Translator::translate('Admin password (4 characters minimum)'), array('required', 'minLength' => 4)),
            new TextFormElement('siteName', Translator::translate('Site name'), array('required')),
            $timezoneElement,
            $homePageTitleElement
        ));

        $this->setDecorator(new HTMLFormDecorator());
    }
}
